At 5:30 PM +0100 11/29/00, Peter Eisentraut wrote:
>Peter Bierman writes:
>
>> Here are patches to CVS top of tree that allow darwin to completely
>> build and install. Unfortunately, the sem...() shim does not function
>> correctly yet, so it's not stable enough to use.
>
>We've been through this before. Newer Darwin kernels have semaphore
>support, which means that you'll at least have to compensate for that. I
>believe we agreed that semaphore support for older kernels would be
>available as a patch.
I just talked to the kernel engineer, and semctl & friends will not be in darwin anytime soon.
The current Darwin kernel supports the sem_* functions, but not sem_init and sem_destroy (unnamed BSD semaphores).
sem_openand sem_close work though. I plan to change the qnx shim code to use named semaphores, and with luck, we'll be
offto the races. ;-)
I still don't quite know what to do about:
>> +#if defined(darwin)
>> +#include "../backend/port/darwin/sem.h"
>> +#endif
>
>This doesn't work. There's no guarantee that the source tree is the same
>as the build tree.
I'm guessing qnx4 doesn't have this problem because they have a <sys/sem.h>, just no implementation.
I could put the contents in os.h, though that feels wrong.
I could add a CFLAGS+=-Isrc/backend/port/darwin/ either to the affected file's parent directory makefiles, or in
template/darwin.
Suggestions?
-pmb
--
bierman@apple.com
"4 out of 5 people with the wrong hardware want to run Mac OS X because..."
http://www.newertech.com/oscompatibility/osxinfo.html